const jwt = require("jsonwebtoken");
const cert = "ksdhy";
/**
 * 登陆验证，生成token
 * @param {string} username 用户名
 */
exports.generateToken = (username) => {
  return jwt.sign(
    {
      // token数据
      username,
      time: new Date().getTime(),
    },
    cert, // 密钥
    {
      //参数 options
      algorithm: "HS256", // 加密算法
      issuer: "ksdhy", // 签发人
      expiresIn: 60 * 60 * 24 * 3, // 过期时间   单位：s
    }
  );
};

/**
 * 签名验证
 * @param {string} token
 */
exports.verifyToken = (token) => {
  return new Promise((resolve, reject) => {
    jwt.verify(
      token,
      cert,
      {
        issuer: "ksdhy",
        algorithms: ["HS256"],
      },
      (err, decoded) => {
        if (err) {
          reject(err);
        } else {
          resolve(decoded);
        }
      }
    );
  });
};
